﻿using System;
using System.Diagnostics;
using System.Globalization;
using System.Windows.Forms;
using Business;
using Business.Entity.Configuracao;
using Business.Forms;
using Ecf;
using Vendas.Models;

namespace Vendas.Forms
{
    public partial class FormFechamento : FormDefault
    {
        

        public FormFechamento()
        {
            InitializeComponent();
            fechamentoSplashManager.ShowWaitForm();
            fechamentoModelBindingSource.DataSource = new FechamentoModel();
            fechamentoSplashManager.CloseWaitForm();
        }

        
        private void FormFechamento_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyData == Keys.Escape)
            {
                Close();
            }
        }

        
        private void cmdFecharDia_Click(object sender, EventArgs e)
        {
            var msg1 = "Esta operação encerra as atividades do dia e impossibilita a realização de novas vendas para" +
                      "esta data.\n\n Deseja realmente emitir a redução Z?";
            var msg2 = "Dia encerrado com sucesso.";
            try
            {
                if (MessageBox.Show(msg1, "Atenção", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    var conf = ConfiguracaoGeralRepository.GetById(Utils.Configuracao.Id);
                    var cal = CultureInfo.InvariantCulture.Calendar;
                    conf.DiaProcessamento = cal.AddDays(conf.DiaProcessamento, 1);
                    // Emite a redução Z
                    EcfHelper.GetEcf().ImprimeReducaoZ();
                    ConfiguracaoGeralRepository.Save(conf);
                    MessageBox.Show(msg2, "Aviso");
                    Process.GetCurrentProcess().Kill();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro ao fechar dia.\n Descrição do erro: " + ex.Message );
            }
            
        }
    }
}